{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "418ae217",
   "metadata": {},
   "source": [
    "----\n",
    "* 日期：2023-10-30\n",
    "* 课程：python\n",
    "* week09\n",
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f0c1e77c",
   "metadata": {},
   "source": [
    "# 本周内容\n",
    "\n",
    "## 1.列表进阶\n",
    "\n",
    "## 2.课本项目\n",
    "\n",
    "## 3.留一个课堂项目给大家做"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4e9ddf90",
   "metadata": {},
   "source": [
    "### 1.1 接上周内容（）列表的方法--remove"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "3ffd5a7a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['张三', '李四', '小明', 'Jalex']"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list = [\"张三\",\"李四\",\"小明\",\"Jalex\"]\n",
    "\n",
    "name_list"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7c4edf9e",
   "metadata": {},
   "source": [
    "* 思考：我怎么知道‘李鹏’在数据列表里面呢？\n",
    "\n",
    "> 1. 先查询\n",
    "> 2. 后删除\n",
    "\n",
    "* in 方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "95e61c74",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "张三\n"
     ]
    }
   ],
   "source": [
    "# 列表的循环\n",
    "for i in name_list:\n",
    "    if i == \"张三\":\n",
    "        print(i)\n",
    "        name_list.remove(\"张三\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "9140481d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['李四', '小明', 'Jalex']"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "11ac3731",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"小明\"in name_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "1f1ab677",
   "metadata": {},
   "outputs": [],
   "source": [
    "if \"小明\"in name_list:\n",
    "     name_list.remove(\"小明\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "71cf657d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['李四', 'Jalex']"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5ed7b086",
   "metadata": {},
   "source": [
    "### 1.2 列表的其他方法"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "3ad997a7",
   "metadata": {},
   "outputs": [],
   "source": [
    "name_list.clear()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "133c6903",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "15ab6b62",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['张三', '李四', '小明', 'Jalex', '李四']"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# count 查看list中统计元素的数量\n",
    "name_list = [\"张三\",\"李四\",\"小明\",\"Jalex\",\"李四\"]\n",
    "name_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "0452e6ba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list.count(\"李四\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "bbef42da",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 案例\n",
    "# 假设掷骰子100次，统计1-6个出现多少次\n",
    "import random\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "dce2395f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 是不是需要先有一个空列表？来存放我们产生的数据呢？\n",
    "random_list = []\n",
    "# 增加数据到列表里面？\n",
    "for i in range(100000):\n",
    "    random_list.append(random.randint(1,6))\n",
    "#    print(random.randint(1,6))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "e09e141c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[5, 2, 6, 4, 6, 5, 5, 6, 5, 2, 1, 6, 3, 3, 1, 4, 5, 3, 5, 2, 5, 1, 2, 3, 4, 4, 4, 6, 6, 2, 1, 1, 2, 4, 6, 6, 6, 4, 3, 4, 2, 4, 1, 6, 5, 6, 2, 4, 5, 4, 6, 4, 5, 2, 1, 3, 6, 5, 5, 2, 3, 2, 3, 5, 2, 5, 4, 1, 1, 1, 4, 6, 6, 5, 5, 6, 3, 6, 6, 3, 4, 4, 1, 1, 1, 3, 1, 6, 1, 1, 6, 2, 3, 3, 2, 3, 2, 5, 5, 2, 6, 3, 3, 2, 2, 4, 2, 2, 2, 5, 1, 3, 2, 3, 1, 1, 6, 2, 4, 4, 3, 5, 4, 6, 3, 6, 5, 2, 5, 5, 1, 6, 1, 3, 1, 3, 4, 3, 2, 6, 5, 6, 3, 1, 4, 5, 2, 1, 5, 5, 6, 6, 1, 3, 5, 3, 1, 1, 4, 6, 4, 1, 3, 3, 3, 5, 5, 6, 2, 5, 5, 5, 1, 1, 5, 1, 3, 3, 6, 1, 4, 3, 3, 1, 6, 4, 2, 2, 4, 5, 3, 3, 5, 6, 6, 4, 2, 2, 3, 2, 5, 4, 4, 4, 1, 3, 2, 2, 2, 4, 1, 4, 2, 1, 4, 5, 1, 4, 5, 6, 3, 5, 6, 2, 6, 5, 4, 6, 6, 3, 3, 4, 1, 6, 5, 2, 3, 5, 3, 3, 6, 3, 1, 4, 1, 4, 4, 6, 6, 6, 6, 1, 3, 4, 5, 4, 6, 1, 5, 1, 3, 2, 6, 1, 1, 2, 2, 2, 1, 1, 3, 1, 3, 3, 6, 2, 3, 4, 3, 6, 6, 6, 4, 4, 4, 4, 6, 4, 6, 1, 5, 5, 6, 4, 5, 5, 5, 5, 3, 6, 1, 1, 3, 3, 5, 5, 3, 5, 6, 6, 3, 1, 6, 4, 4, 6, 5, 6, 3, 6, 6, 5, 3, 1, 5, 5, 4, 5, 1, 4, 3, 4, 3, 5, 2, 6, 5, 1, 4, 2, 2, 1, 4, 2, 1, 4, 2, 6, 5, 2, 4, 4, 3, 5, 6, 2, 6, 5, 4, 1, 4, 6, 2, 3, 2, 3, 6, 2, 6, 2, 4, 5, 2, 3, 2, 2, 2, 3, 3, 5, 3, 2, 3, 6, 3, 2, 5, 5, 5, 6, 4, 3, 3, 6, 1, 4, 3, 4, 5, 4, 4, 5, 6, 5, 2, 5, 1, 3, 3, 1, 4, 6, 5, 4, 5, 1, 4, 6, 1, 2, 1, 4, 3, 2, 6, 2, 3, 3, 6, 6, 4, 3, 1, 1, 3, 2, 2, 6, 5, 1, 3, 1, 5, 1, 5, 1, 1, 3, 5, 3, 6, 4, 2, 5, 2, 1, 1, 1, 6, 6, 5, 2, 1, 6, 4, 6, 4, 5, 4, 4, 3, 6, 6, 5, 4, 2, 4, 5, 4, 6, 4, 1, 2, 4, 1, 3, 1, 1, 5, 2, 1, 5, 5, 4, 5, 6, 4, 4, 6, 2, 3, 3, 3, 4, 6, 1, 3, 6, 1, 2, 5, 6, 5, 3, 6, 5, 6, 6, 5, 2, 6, 4, 2, 3, 5, 3, 3, 2, 6, 3, 5, 1, 2, 6, 2, 1, 2, 1, 2, 2, 4, 5, 2, 6, 2, 3, 1, 3, 5, 3, 4, 3, 3, 5, 6, 2, 4, 5, 4, 5, 5, 4, 3, 3, 6, 1, 3, 6, 6, 3, 5, 2, 5, 1, 2, 6, 3, 6, 1, 2, 2, 4, 1, 1, 5, 6, 5, 4, 5, 2, 4, 2, 1, 1, 4, 5, 5, 2, 4, 6, 3, 4, 3, 2, 4, 3, 6, 4, 5, 4, 6, 3, 6, 5, 6, 2, 4, 4, 3, 3, 3, 3, 5, 2, 5, 1, 5, 1, 2, 2, 2, 3, 1, 6, 3, 6, 6, 1, 6, 3, 3, 2, 2, 6, 2, 4, 5, 3, 6, 2, 3, 1, 5, 5, 1, 6, 1, 1, 2, 1, 3, 2, 4, 2, 4, 5, 4, 6, 5, 3, 4, 1, 1, 6, 6, 4, 3, 1, 3, 4, 4, 5, 5, 2, 1, 2, 2, 1, 5, 5, 4, 3, 3, 1, 3, 4, 1, 5, 2, 6, 2, 1, 1, 4, 5, 6, 4, 5, 5, 4, 1, 2, 4, 1, 5, 3, 4, 1, 2, 6, 6, 6, 6, 6, 5, 1, 4, 1, 3, 2, 5, 6, 2, 5, 1, 2, 4, 3, 4, 2, 2, 6, 2, 5, 2, 2, 1, 5, 4, 2, 1, 3, 1, 2, 5, 6, 1, 1, 3, 4, 4, 3, 5, 6, 4, 4, 3, 2, 4, 2, 5, 4, 2, 5, 6, 3, 4, 1, 3, 6, 4, 6, 5, 3, 3, 3, 5, 6, 6, 6, 4, 1, 3, 2, 2, 1, 3, 2, 5, 6, 6, 3, 3, 3, 6, 5, 4, 6, 4, 5, 4, 6, 6, 4, 6, 2, 3, 3, 5, 3, 3, 2, 3, 6, 4, 6, 2, 6, 2, 6, 3, 6, 4, 6, 5, 2, 1, 1, 4, 6, 1, 6, 2, 5, 6, 2, 2, 2, 1, 5, 2, 3, 4, 6, 6, 5, 3, 2, 3, 4, 3, 4, 6, 3, 2, 4, 4, 6, 4, 4, 3, 5, 6, 1, 5, 3, 1, 6, 3, 2, 1, 4, 3, 1, 2, 2, 6, 6, 5, 4, 1, 3, 4, 1, 2, 2, 3, 3, 4, 2, 4, 3, 6, 6, 2, 3, 2, 1, 1, 3, 6, 3, 1, 4, 2, 4, 2, 6, 4, 4, 1, 2, 6, 2, 1, 2, 2, 6, 2, 6, 1, 5, 4, 6, 5, 6, 1, 5, 4, 5, 2, 5, 2, 4, 3, 3, 3, 2, 5, 1, 1, 2, 2, 4, 1, 1, 6, 2, 6, 2, 2, 3, 6, 3, 5, 3, 1, 3, 1, 6, 2, 4, 5, 6, 6, 2, 5, 1, 1, 5, 1, 3, 5, 2, 5, 2, 1, 1, 2, 3, 4, 2, 6, 1, 3, 2, 3, 5, 2, 6, 2, 3, 5, 1, 5, 6, 5, 4, 5, 6, 4, 1, 6, 5, 5, 2, 4, 2, 5, 4, 4, 3, 1, 5, 2, 5, 5, 2, 3, 3, 2, 4, 3, 1, 6, 1, 5, 1, 2, 3, 6, 5, 4, 2, 4, 6, 1, 1, 6, 1, 6, 4, 3, 3, 4, 5, 1, 1, 3, 6, 6, 1, 3, 4, 1, 6, 4, 6, 2, 5, 2, 1, 2, 1, 3, 2, 3, 6, 2, 4, 3, 4, 2, 4, 6, 4, 1, 6, 5, 3, 2, 2, 1, 2, 1, 2, 2, 5, 1, 4, 3, 6, 1, 2, 5, 3, 1, 3, 5, 5, 5, 4, 3, 6, 2, 5, 1, 5, 2, 2, 3, 4, 6, 5, 3, 2, 1, 1, 1, 5, 3, 5, 1, 2, 1, 3, 6, 1, 6, 1, 6, 1, 1, 5, 3, 4, 5, 2, 4, 3, 3, 6, 6, 1, 6, 4, 3, 1, 4, 1, 3, 6, 6, 3, 6, 4, 1, 6, 6, 5, 4, 5, 6, 3, 4, 4, 6, 5, 2, 4, 1, 1, 5, 3, 6, 4, 5, 6, 6, 2, 6, 3, 6, 4, 2, 1, 4, 2, 1, 5, 5, 5, 5, 2, 1, 2, 3, 6, 4, 4, 1, 6, 5, 5, 2, 2, 6, 4, 2, 4, 3, 1, 3, 2, 4, 1, 1, 1, 5, 6, 2, 1, 1, 3, 6, 1, 3, 3, 1, 2, 5, 3, 4, 6, 1, 5, 6, 5, 4, 6, 2, 2, 4, 2, 5, 5, 5, 6, 4, 6, 3, 5, 3, 3, 3, 1, 5, 4, 2, 2, 6, 2, 6, 5, 6, 4, 6, 3, 5, 5, 4, 5, 4, 5, 2, 4, 4, 2, 1, 6, 4, 2, 3, 4, 6, 5, 1, 4, 1, 2, 2, 5, 5, 1, 6, 2, 3, 3, 3, 5, 3, 1, 5, 5, 5, 5, 4, 6, 3, 5, 2, 3, 4, 5, 1, 2, 2, 2, 1, 5, 4, 4, 5, 4, 5, 1, 3, 1, 6, 6, 4, 6, 2, 3, 4, 1, 1, 5, 5, 4, 3, 3, 2, 5, 3, 4, 4, 4, 3, 4, 5, 5, 2, 1, 3, 3, 3, 5, 3, 5, 5, 3, 2, 3, 2, 6, 4, 4, 5, 3, 5, 2, 4, 4, 4, 4, 6, 1, 4, 2, 6, 4, 4, 1, 1, 3, 4, 4, 2, 1, 2, 6, 6, 2, 3, 1, 2, 3, 5, 1, 5, 3, 2, 6, 5, 5, 6, 5, 6, 6, 3, 2, 6, 1, 2, 1, 1, 3, 2, 3, 5, 2, 2, 3, 1, 2, 2, 6, 5, 5, 4, 2, 1, 5, 2, 6, 6, 4, 6, 6, 6, 2, 3, 6, 3, 6, 1, 2, 5, 5, 3, 1, 2, 4, 2, 2, 4, 1, 4, 3, 3, 5, 4, 2, 4, 1, 6, 5, 3, 2, 1, 4, 5, 6, 1, 3, 1, 4, 3, 4, 6, 3, 2, 3, 4, 1, 6, 5, 1, 1, 3, 3, 6, 6, 1, 4, 4, 4, 2, 2, 2, 1, 4, 4, 6, 3, 1, 1, 5, 1, 3, 5, 4, 1, 4, 4, 4, 3, 4, 6, 2, 3, 1, 2, 1, 6, 5, 2, 1, 4, 3, 4, 3, 2, 6, 3, 4, 3, 2, 5, 6, 6, 4, 1, 1, 2, 6, 2, 4, 3, 3, 4, 6, 4, 4, 6, 4, 5, 1, 1, 1, 4, 1, 6, 1, 2, 2, 3, 6, 6, 6, 4, 3, 4, 1, 3, 1, 6, 5, 2, 1, 1, 4, 1, 3, 4, 2, 5, 3, 5, 2, 1, 4, 2, 2, 6, 6, 6, 3, 5, 6, 2, 5, 5, 1, 3, 2, 3, 1, 4, 2, 1, 3, 4, 6, 2, 2, 5, 4, 2, 5, 1, 4, 2, 5, 4, 5, 4, 6, 4, 3, 5, 2, 5, 4, 3, 5, 3, 3, 6, 1, 2, 6, 4, 4, 4, 6, 6, 4, 3, 3, 3, 2, 6, 2, 2, 5, 5, 3, 5, 3, 2, 1, 4, 4, 4, 6, 1, 6, 3, 4, 4, 2, 3, 5, 3, 6, 5, 1, 6, 5, 5, 1, 2, 1, 6, 2, 2, 2, 3, 6, 3, 3, 3, 6, 4, 6, 3, 5, 3, 6, 5, 1, 2, 4, 5, 2, 3, 1, 2, 2, 3, 1, 4, 6, 6, 1, 5, 4, 5, 4, 2, 5, 6, 4, 6, 1, 3, 6, 2, 4, 4, 2, 4, 5, 2, 5, 5, 1, 5, 4, 3, 4, 2, 1, 4, 6, 4, 1, 1, 6, 6, 4, 4, 5, 1, 3, 5, 3, 3, 6, 5, 6, 1, 2, 5, 2, 5, 1, 5, 3, 2, 2, 5, 6, 1, 1, 3, 4, 5, 3, 4, 3, 4, 5, 1, 2, 2, 5, 2, 4, 1, 3, 1, 2, 4, 3, 6, 6, 1, 2, 3, 2, 5, 1, 1, 5, 6, 1, 1, 6, 1, 6, 2, 4, 2, 6, 2, 3, 4, 3, 2, 5, 2, 1, 5, 1, 4, 3, 2, 6, 4, 6, 6, 5, 5, 4, 5, 5, 4, 1, 4, 6, 5, 4, 6, 3, 4, 1, 4, 1, 2, 2, 4, 1, 3, 4, 2, 1, 1, 2, 3, 6, 5, 5, 2, 2, 2, 5, 3, 5, 2, 3, 3, 3, 2, 1, 5, 1, 4, 4, 4, 5, 5, 6, 2, 2, 5, 3, 4, 5, 1, 2, 2, 3, 3, 5, 1, 4, 6, 5, 4, 4, 4, 3, 1, 2, 4, 3, 2, 1, 6, 3, 3, 3, 3, 6, 2, 2, 6, 4, 4, 4, 5, 6, 6, 6, 6, 6, 4, 5, 5, 5, 6, 3, 6, 2, 6, 4, 2, 6, 3, 3, 6, 3, 4, 6, 1, 1, 2, 3, 1, 6, 2, 6, 5, 5, 6, 2, 5, 6, 4, 3, 4, 5, 6, 6, 2, 1, 1, 4, 6, 6, 2, 5, 3, 4, 6, 3, 4, 3, 1, 2, 2, 1, 5, 2, 2, 4, 1, 4, 4, 5, 6, 6, 1, 3, 4, 3, 1, 4, 1, 1, 5, 6, 1, 5, 3, 6, 3, 3, 6, 1, 1, 6, 2, 6, 4, 5, 3, 3, 2, 1, 4, 3, 2, 3, 2, 4, 4, 2, 6, 6, 3, 4, 4, 1, 6, 3, 5, 3, 1, 4, 5, 6, 2, 2, 5, 2, 2, 2, 3, 3, 6, 1, 3, 1, 3, 2, 2, 5, 3, 2, 4, 5, 2, 1, 4, 2, 2, 2, 2, 1, 5, 1, 1, 1, 3, 6, 5, 1, 1, 1, 3, 1, 3, 6, 3, 6, 2, 4, 6, 2, 5, 4, 1, 6, 1, 3, 6, 2, 3, 4, 2, 5, 4, 1, 3, 2, 3, 2, 4, 4, 6, 4, 3, 6, 3, 3, 2, 5, 2, 3, 6, 5, 1, 6, 4, 5, 4, 5, 3, 6, 2, 4, 6, 5, 5, 5, 5, 5, 5, 6, 5, 6, 1, 2, 6, 2, 4, 2, 6, 6, 4, 5, 2, 4, 6, 4, 5, 2, 2, 6, 1, 3, 3, 6, 1, 2, 6, 4, 1, 6, 2, 5, 1, 2, 1, 2, 3, 1, 4, 5, 2, 3, 3, 1, 2, 3, 1, 2, 5, 2, 3, 1, 3, 3, 4, 6, 3, 5, 4, 3, 3, 5, 2, 5, 2, 4, 3, 3, 1, 6, 5, 6, 4, 1, 1, 2, 2, 6, 2, 2, 3, 2, 3, 2, 1, 1, 2, 5, 4, 6, 5, 6, 1, 4, 2, 6, 5, 3, 1, 6, 6, 1, 2, 3, 2, 4, 4, 3, 4, 3, 6, 1, 3, 6, 1, 4, 4, 5, 6, 4, 3, 2, 2, 1, 2, 3, 5, 2, 4, 1, 2, 5, 5, 5, 1, 3, 5, 4, 2, 5, 5, 6, 3, 1, 2, 5, 3, 6, 1, 4, 3, 3, 5, 5, 6, 1, 3, 4, 4, 3, 5, 6, 3, 1, 3, 4, 1, 5, 4, 4, 5, 1, 6, 6, 1, 1, 6, 4, 5, 1, 5, 1, 2, 4, 1, 3, 2, 1, 4, 6, 4, 2, 3, 6, 1, 6, 4, 2, 6, 4, 6, 6, 4, 4, 4, 4, 1, 4, 2, 3, 4, 6, 6, 1, 2, 5, 6, 5, 6, 4, 6, 3, 6, 1, 4, 3, 6, 1, 5, 6, 4, 5, 1, 2, 4, 6, 4, 4, 5, 6, 6, 6, 4, 2, 2, 2, 3, 5, 5, 3, 5, 6, 3, 6, 4, 5, 1, 2, 2, 2, 5, 4, 5, 4, 6, 2, 5, 1, 4, 5, 1, 1, 4, 4, 2, 2, 3, 5, 2, 4, 6, 1, 3, 1, 3, 1, 5, 2, 4, 1, 2, 2, 1, 5, 3, 2, 1, 6, 5, 5, 3, 4, 4, 2, 2, 6, 4, 4, 2, 2, 6, 5, 3, 4, 3, 2, 6, 6, 6, 3, 2, 5, 2, 1, 5, 5, 6, 2, 6, 6, 6, 1, 4, 5, 1, 1, 3, 3, 4, 1, 3, 5, 3, 2, 5, 2, 1, 6, 3, 4, 6, 1, 6, 4, 6, 6, 6, 6, 5, 3, 2, 5, 1, 2, 6, 6, 2, 6, 5, 2, 3, 6, 1, 1, 5, 3, 5, 6, 6, 2, 5, 2, 3, 4, 5, 1, 2, 2, 2, 3, 3, 2, 1, 4, 3, 2, 3, 4, 4, 1, 2, 3, 6, 2, 2, 1, 5, 5, 6, 2, 3, 5, 1, 2, 6, 3, 6, 2, 6, 6, 2, 6, 3, 5, 4, 5, 2, 2, 1, 1, 1, 3, 3, 3, 3, 4, 2, 2, 1, 4, 1, 1, 1, 4, 1, 4, 6, 3, 6, 1, 6, 1, 6, 4, 3, 6, 4, 1, 1, 3, 5, 4, 2, 3, 1, 4, 6, 6, 6, 3, 5, 6, 6, 2, 4, 2, 4, 1, 1, 6, 1, 4, 3, 4, 6, 1, 3, 2, 5, 5, 2, 3, 4, 3, 3, 1, 3, 6, 2, 6, 6, 4, 2, 4, 2, 3, 6, 2, 3, 4, 2, 6, 1, 4, 1, 6, 5, 5, 4, 3, 1, 3, 6, 3, 4, 5, 2, 6, 6, 2, 5, 4, 5, 3, 4, 4, 5, 3, 1, 5, 6, 3, 1, 5, 1, 6, 6, 3, 4, 5, 5, 4, 3, 3, 1, 5, 6, 2, 1, 3, 6, 3, 1, 4, 3, 5, 5, 4, 3, 2, 1, 4, 1, 3, 1, 3, 1, 4, 3, 5, 5, 1, 2, 3, 2, 1, 3, 4, 4, 6, 2, 1, 4, 2, 3, 2, 6, 5, 1, 3, 5, 4, 4, 5, 3, 6, 6, 2, 1, 4, 3, 6, 2, 3, 4, 6, 1, 4, 6, 6, 4, 2, 6, 3, 1, 1, 3, 5, 4, 4, 4, 5, 3, 5, 1, 5, 5, 4, 2, 1, 2, 4, 1, 2, 2, 4, 6, 3, 6, 5, 6, 1, 2, 6, 2, 2, 4, 3, 5, 5, 3, 2, 1, 5, 4, 1, 6, 6, 4, 1, 5, 5, 2, 4, 3, 2, 1, 1, 6, 5, 5, 6, 2, 6, 4, 6, 2, 4, 2, 6, 5, 4, 6, 1, 2, 6, 6, 1, 4, 6, 5, 3, 3, 3, 1, 4, 6, 5, 6, 1, 5, 6, 3, 5, 1, 2, 5, 6, 3, 6, 3, 1, 6, 6, 1, 3, 5, 4, 2, 6, 6, 5, 5, 1, 6, 5, 1, 5, 3, 3, 3, 6, 4, 5, 6, 2, 5, 3, 2, 1, 5, 2, 2, 1, 3, 4, 6, 4, 6, 1, 5, 4, 2, 1, 3, 2, 4, 4, 1, 6, 4, 4, 4, 5, 3, 4, 4, 2, 2, 3, 2, 5, 5, 6, 3, 4, 1, 6, 4, 4, 1, 1, 3, 2, 3, 3, 4, 2, 6, 5, 3, 1, 5, 3, 4, 5, 1, 4, 3, 5, 2, 3, 3, 4, 2, 1, 2, 3, 2, 6, 2, 1, 3, 4, 6, 6, 3, 5, 3, 2, 4, 2, 1, 3, 5, 3, 6, 2, 5, 5, 4, 4, 6, 5, 3, 3, 4, 2, 2, 2, 3, 3, 5, 3, 6, 5, 4, 6, 5, 6, 1, 1, 3, 4, 3, 6, 5, 4, 4, 4, 5, 6, 1, 4, 5, 1, 3, 6, 3, 5, 3, 6, 2, 2, 1, 3, 2, 4, 6, 6, 2, 3, 2, 3, 6, 2, 5, 2, 6, 6, 1, 3, 2, 3, 5, 3, 3, 2, 6, 2, 2, 1, 4, 5, 2, 5, 1, 6, 3, 5, 1, 6, 1, 2, 6, 3, 5, 2, 5, 5, 2, 4, 5, 6, 1, 4, 5, 6, 1, 6, 6, 4, 4, 3, 3, 1, 4, 6, 4, 2, 2, 2, 3, 4, 4, 2, 4, 2, 1, 4, 4, 1, 1, 3, 4, 5, 1, 5, 3, 4, 5, 1, 6, 4, 5, 1, 1, 2, 1, 4, 4, 5, 2, 1, 1, 6, 1, 5, 3, 2, 4, 4, 1, 2, 3, 3, 5, 4, 1, 6, 3, 3, 4, 1, 3, 1, 2, 1, 4, 6, 6, 6, 6, 2, 3, 3, 4, 4, 2, 5, 4, 3, 3, 5, 2, 2, 2, 3, 6, 2, 5, 2, 3, 2, 2, 1, 1, 2, 6, 6, 6, 1, 3, 3, 6, 1, 4, 6, 4, 4, 6, 2, 4, 3, 5, 2, 4, 1, 6, 1, 2, 5, 1, 3, 1, 1, 3, 3, 2, 1, 6, 1, 6, 5, 3, 1, 6, 2, 6, 6, 1, 3, 6, 4, 4, 4, 5, 5, 1, 1, 4, 6, 5, 6, 4, 4, 2, 4, 2, 5, 5, 3, 4, 4, 6, 1, 6, 1, 4, 6, 1, 4, 3, 6, 1, 3, 2, 2, 6, 6, 2, 5, 5, 4, 6, 5, 3, 1, 4, 4, 4, 4, 6, 6, 3, 2, 4, 1, 4, 4, 1, 2, 5, 5, 6, 5, 3, 1, 3, 1, 3, 1, 5, 4, 2, 4, 4, 3, 1, 3, 2, 4, 4, 1, 1, 4, 3, 6, 2, 3, 6, 4, 5, 1, 3, 4, 6, 6, 1, 5, 4, 2, 6, 6, 6, 4, 5, 2, 5, 6, 1, 3, 4, 2, 4, 2, 6, 3, 5, 2, 3, 5, 2, 4, 1, 6, 4, 2, 3, 6, 6, 5, 4, 4, 5, 6, 2, 1, 4, 6, 4, 3, 6, 3, 6, 1, 3, 5, 2, 2, 6, 6, 5, 2, 1, 6, 3, 2, 3, 2, 2, 1, 4, 2, 4, 5, 4, 4, 1, 4, 5, 4, 2, 3, 2, 5, 6, 4, 6, 6, 5, 3, 4, 6, 3, 5, 5, 5, 2, 2, 1, 5, 5, 1, 3, 4, 3, 6, 3, 5, 2, 1, 1, 6, 1, 1, 1, 2, 3, 2, 5, 5, 5, 1, 1, 2, 2, 4, 4, 4, 2, 3, 6, 3, 4, 3, 6, 4, 1, 1, 6, 2, 1, 5, 3, 3, 6, 4, 2, 2, 3, 3, 2, 6, 1, 5, 5, 1, 1, 4, 2, 5, 1, 3, 1, 4, 4, 2, 3, 1, 1, 3, 6, 1, 5, 3, 4, 4, 2, 5, 2, 1, 2, 5, 3, 6, 5, 3, 5, 5, 2, 1, 5, 1, 6, 2, 4, 3, 6, 6, 1, 3, 6, 2, 1, 1, 4, 5, 2, 2, 5, 4, 3, 2, 5, 1, 3, 1, 5, 6, 1, 4, 6, 6, 6, 4, 2, 5, 2, 5, 4, 4, 2, 3, 4, 2, 5, 3, 3, 4, 3, 2, 2, 5, 5, 4, 6, 1, 1, 4, 6, 5, 1, 5, 5, 2, 4, 2, 3, 4, 5, 5, 2, 4, 6, 5, 6, 4, 6, 5, 5, 3, 4, 1, 1, 5, 2, 2, 2, 3, 5, 3, 1, 3, 2, 3, 5, 6, 4, 3, 4, 4, 1, 3, 4, 2, 6, 6, 4, 1, 3, 2, 3, 6, 1, 3, 5, 6, 6, 1, 3, 6, 4, 3, 6, 6, 3, 1, 3, 6, 5, 5, 4, 3, 6, 3, 3, 1, 1, 6, 3, 6, 1, 4, 4, 3, 3, 3, 2, 3, 3, 2, 2, 2, 6, 4, 4, 5, 2, 6, 1, 2, 4, 4, 1, 3, 6, 3, 3, 2, 5, 6, 4, 1, 3, 6, 1, 1, 3, 3, 6, 2, 3, 6, 1, 4, 5, 6, 6, 6, 6, 6, 3, 5, 3, 5, 3, 2, 5, 3, 1, 2, 5, 3, 2, 4, 2, 2, 2, 6, 1, 2, 2, 3, 5, 6, 4, 4, 2, 1, 6, 1, 5, 4, 2, 1, 2, 1, 5, 6, 4, 2, 5, 2, 6, 2, 6, 1, 3, 2, 4, 3, 4, 4, 4, 2, 1, 1, 6, 4, 6, 6, 6, 2, 2, 3, 4, 4, 1, 2, 4, 2, 4, 2, 6, 5, 4, 5, 3, 1, 2, 3, 2, 1, 5, 6, 3, 5, 6, 4, 4, 3, 4, 3, 6, 3, 3, 5, 1, 1, 3, 4, 3, 4, 5, 3, 2, 6, 2, 3, 4, 2, 1, 4, 3, 4, 5, 3, 6, 3, 6, 2, 4, 1, 6, 1, 1, 6, 6, 3, 6, 3, 3, 5, 1, 4, 1, 4, 2, 5, 6, 1, 1, 1, 5, 1, 1, 1, 2, 4, 6, 3, 3, 5, 2, 1, 2, 3, 3, 2, 4, 3, 6, 4, 4, 4, 3, 1, 6, 3, 2, 2, 2, 3, 6, 2, 3, 2, 1, 5, 6, 3, 4, 3, 3, 1, 3, 6, 3, 6, 1, 4, 1, 1, 5, 2, 6, 6, 6, 3, 6, 5, 6, 3, 3, 6, 1, 3, 4, 5, 5, 3, 2, 3, 5, 5, 1, 3, 3, 2, 3, 6, 6, 2, 1, 3, 6, 3, 3, 6, 3, 1, 5, 5, 5, 5, 3, 6, 3, 3, 1, 3, 1, 5, 6, 6, 3, 6, 4, 5, 6, 1, 1, 3, 3, 6, 1, 1, 1, 1, 6, 3, 3, 5, 4, 1, 6, 5, 6, 6, 5, 6, 1, 6, 6, 4, 3, 5, 6, 5, 5, 4, 3, 1, 1, 2, 6, 4, 3, 4, 3, 3, 5, 1, 2, 5, 1, 2, 5, 4, 3, 5, 1, 3, 6, 6, 6, 5, 4, 1, 4, 6, 6, 2, 5, 3, 4, 4, 2, 1, 2, 4, 2, 1, 5, 5, 2, 6, 4, 2, 6, 3, 1, 5, 1, 4, 3, 2, 3, 2, 5, 1, 4, 3, 2, 3, 3, 6, 5, 4, 2, 6, 1, 5, 2, 5, 2, 4, 3, 4, 6, 4, 5, 4, 1, 1, 3, 3, 2, 4, 5, 4, 1, 5, 5, 3, 1, 4, 5, 2, 3, 1, 4, 4, 2, 4, 1, 1, 4, 2, 2, 6, 5, 1, 4, 4, 4, 2, 4, 2, 6, 2, 6, 2, 2, 3, 1, 2, 5, 4, 2, 3, 2, 6, 3, 4, 6, 6, 1, 4, 5, 2, 3, 5, 6, 6, 1, 4, 4, 6, 5, 6, 4, 2, 3, 5, 1, 2, 3, 1, 1, 1, 1, 4, 1, 3, 4, 3, 1, 4, 5, 1, 6, 6, 5, 4, 4, 5, 3, 1, 3, 3, 4, 5, 3, 5, 1, 6, 5, 6, 1, 5, 4, 1, 5, 5, 3, 2, 1, 6, 2, 1, 2, 1, 1, 6, 2, 6, 3, 6, 1, 5, 3, 3, 6, 1, 2, 6, 4, 6, 1, 1, 4, 1, 2, 4, 4, 5, 5, 6, 3, 2, 5, 3, 5, 4, 6, 6, 2, 6, 3, 3, 1, 1, 5, 4, 5, 2, 4, 1, 3, 3, 2, 2, 2, 6, 1, 2, 2, 5, 2, 5, 2, 3, 3, 2, 6, 3, 6, 1, 4, 4, 2, 2, 6, 4, 5, 1, 4, 1, 2, 1, 1, 5, 2, 6, 3, 3, 4, 2, 2, 1, 2, 6, 4, 1, 5, 5, 2, 6, 1, 4, 6, 3, 5, 3, 6, 5, 1, 4, 4, 4, 1, 2, 6, 5, 2, 6, 6, 5, 4, 1, 6, 6, 4, 6, 6, 1, 3, 2, 4, 6, 6, 2, 6, 6, 6, 3, 3, 3, 2, 5, 4, 1, 5, 1, 6, 5, 1, 6, 6, 6, 3, 6, 1, 3, 5, 1, 4, 2, 5, 5, 5, 6, 3, 4, 3, 4, 3, 1, 4, 6, 2, 3, 4, 1, 2, 3, 1, 6, 5, 5, 2, 3, 5, 6, 4, 2, 4, 6, 1, 4, 4, 1, 6, 1, 6, 2, 4, 6, 1, 4, 2, 2, 4, 3, 3, 4, 3, 6, 3, 6, 2, 4, 6, 1, 1, 4, 1, 5, 4, 1, 4, 5, 5, 3, 6, 3, 4, 5, 5, 2, 3, 3, 6, 3, 5, 4, 6, 1, 2, 5, 5, 1, 3, 2, 4, 2, 1, 3, 5, 4, 1, 4, 5, 2, 5, 3, 4, 4, 6, 3, 1, 6, 2, 3, 2, 3, 1, 5, 3, 1, 2, 4, 3, 6, 6, 1, 2, 5, 3, 5, 5, 1, 3, 5, 2, 4, 4, 1, 6, 4, 6, 4, 4, 2, 3, 2, 2, 1, 4, 1, 4, 3, 6, 1, 2, 5, 1, 4, 5, 3, 1, 1, 4, 2, 2, 2, 6, 4, 1, 3, 3, 1, 1, 5, 4, 3, 2, 2, 4, 2, 2, 3, 2, 2, 6, 6, 3, 3, 3, 5, 5, 6, 1, 1, 2, 4, 5, 5, 1, 3, 4, 3, 2, 6, 3, 6, 3, 3, 4, 3, 6, 3, 3, 2, 2, 4, 3, 5, 6, 5, 2, 3, 1, 5, 6, 2, 1, 4, 3, 3, 4, 5, 5, 2, 6, 4, 3, 1, 1, 1, 5, 3, 6, 1, 4, 1, 5, 6, 1, 4, 2, 2, 4, 2, 5, 2, 4, 5, 4, 5, 5, 2, 5, 3, 4, 5, 6, 1, 1, 1, 6, 6, 6, 2, 5, 3, 4, 6, 3, 6, 5, 2, 5, 1, 2, 2, 6, 3, 2, 3, 2, 1, 4, 4, 5, 2, 1, 5, 4, 5, 4, 4, 3, 3, 6, 6, 5, 4, 6, 4, 5, 1, 3, 2, 2, 5, 5, 5, 6, 2, 4, 5, 1, 2, 4, 6, 1, 1, 1, 5, 3, 4, 3, 1, 2, 2, 5, 5, 3, 5, 6, 5, 6, 1, 4, 4, 2, 5, 1, 5, 3, 3, 3, 1, 5, 4, 3, 1, 6, 1, 1, 4, 6, 1, 2, 2, 6, 6, 1, 6, 6, 4, 1, 4, 2, 3, 5, 1, 4, 1, 1, 2, 5, 1, 4, 2, 3, 1, 5, 3, 2, 2, 2, 1, 1, 5, 2, 1, 3, 6, 5, 3, 4, 2, 2, 5, 1, 5, 3, 2, 1, 4, 6, 2, 1, 1, 2, 6, 2, 3, 4, 6, 2, 1, 3, 1, 3, 1, 5, 6, 3, 5, 2, 3, 2, 2, 1, 1, 5, 4, 4, 5, 4, 5, 1, 2, 4, 5, 4, 3, 4, 5, 2, 2, 1, 2, 2, 6, 1, 1, 5, 5, 3, 4, 6, 3, 6, 2, 2, 2, 4, 3, 5, 4, 6, 4, 3, 3, 3, 5, 3, 4, 6, 3, 6, 4, 5, 2, 4, 2, 3, 5, 6, 6, 2, 4, 3, 4, 2, 2, 1, 5, 1, 4, 2, 3, 6, 3, 1, 3, 3, 3, 4, 4, 2, 4, 4, 2, 1, 2, 4, 1, 4, 5, 2, 6, 5, 1, 4, 1, 3, 3, 6, 2, 5, 5, 1, 6, 2, 3, 3, 3, 2, 3, 2, 6, 6, 2, 6, 1, 5, 1, 2, 6, 2, 4, 1, 2, 3, 6, 6, 1, 4, 2, 1, 1, 3, 1, 6, 2, 4, 3, 5, 6, 6, 4, 6, 2, 4, 3, 5, 3, 5, 2, 3, 5, 6, 6, 2, 5, 2, 5, 6, 6, 2, 3, 4, 4, 4, 6, 5, 2, 6, 5, 4, 1, 3, 4, 1, 5, 1, 2, 5, 5, 6, 5, 2, 2, 6, 2, 6, 2, 6, 3, 6, 2, 6, 1, 2, 1, 2, 3, 4, 4, 3, 1, 5, 3, 4, 2, 3, 4, 2, 1, 6, 4, 2, 1, 6, 5, 4, 6, 1, 1, 2, 3, 6, 5, 5, 1, 3, 1, 1, 2, 4, 5, 5, 6, 2, 2, 5, 5, 3, 3, 1, 5, 4, 2, 5, 1, 5, 5, 2, 4, 1, 3, 2, 5, 2, 6, 4, 5, 3, 6, 2, 6, 3, 4, 1, 2, 6, 1, 6, 1, 6, 5, 4, 6, 3, 5, 2, 6, 5, 3, 1, 5, 3, 6, 2, 3, 4, 6, 4, 2, 2, 6, 4, 4, 1, 1, 6, 3, 6, 4, 5, 6, 3, 4, 5, 4, 1, 1, 1, 2, 4, 4, 3, 3, 1, 5, 2, 2, 6, 1, 6, 2, 2, 5, 5, 5, 6, 5, 3, 4, 6, 6, 1, 6, 1, 3, 4, 2, 4, 6, 1, 4, 6, 4, 3, 4, 6, 4, 2, 1, 6, 6, 5, 3, 3, 2, 5, 3, 3, 3, 5, 6, 3, 5, 2, 6, 5, 4, 6, 2, 5, 2, 4, 1, 6, 5, 2, 5, 3, 5, 2, 2, 6, 2, 5, 1, 3, 1, 2, 1, 3, 3, 5, 3, 3, 4, 4, 2, 1, 3, 5, 3, 1, 2, 2, 4, 6, 4, 2, 1, 5, 5, 3, 2, 2, 4, 2, 6, 6, 3, 4, 4, 3, 3, 2, 1, 5, 2, 5, 1, 2, 6, 2, 4, 1, 6, 4, 1, 1, 1, 6, 1, 2, 2, 6, 6, 6, 1, 5, 1, 6, 1, 1, 4, 4, 4, 3, 2, 4, 4, 6, 5, 6, 6, 6, 3, 5, 2, 2, 3, 3, 5, 2, 1, 3, 1, 5, 6, 5, 5, 3, 1, 2, 2, 3, 1, 2, 3, 5, 4, 5, 4, 2, 4, 1, 1, 1, 3, 4, 2, 6, 4, 3, 3, 4, 6, 5, 2, 5, 5, 2, 6, 3, 4, 6, 1, 2, 2, 5, 4, 5, 6, 3, 5, 3, 1, 6, 1, 3, 4, 5, 4, 1, 3, 4, 6, 6, 4, 3, 5, 3, 2, 3, 2, 1, 1, 5, 4, 6, 4, 4, 6, 4, 3, 5, 5, 3, 2, 6, 6, 1, 2, 3, 4, 3, 5, 6, 2, 3, 1, 5, 6, 1, 5, 5, 3, 4, 1, 1, 5, 3, 3, 4, 6, 3, 3, 1, 6, 1, 6, 4, 6, 3, 1, 1, 2, 1, 6, 3, 4, 6, 2, 4, 5, 1, 1, 1, 6, 2, 2, 5, 6, 4, 3, 6, 3, 1, 2, 4, 3, 4, 6, 3, 3, 1, 6, 3, 1, 5, 3, 5, 2, 6, 1, 5, 3, 5, 3, 1, 1, 5, 3, 4, 4, 3, 6, 4, 3, 6, 2, 1, 6, 1, 3, 2, 3, 1, 1, 1, 5, 3, 3, 4, 1, 3, 5, 2, 2, 3, 4, 5, 2, 5, 1, 4, 2, 6, 1, 6, 6, 5, 5, 5, 2, 5, 5, 5, 6, 1, 3, 5, 5, 4, 4, 1, 5, 3, 3, 2, 2, 5, 2, 2, 1, 1, 6, 3, 5, 3, 3, 5, 6, 5, 3, 3, 2, 2, 3, 1, 1, 4, 6, 2, 2, 3, 3, 5, 2, 6, 4, 3, 3, 1, 2, 5, 3, 6, 3, 6, 5, 5, 3, 1, 2, 1, 5, 6, 3, 2, 3, 4, 4, 2, 2, 4, 3, 2, 3, 4, 4, 3, 1, 3, 3, 6, 1, 5, 6, 5, 3, 1, 3, 6, 6, 5, 2, 3, 4, 5, 3, 6, 6, 3, 3, 5, 6, 6, 6, 2, 3, 1, 3, 6, 5, 2, 1, 3, 5, 4, 5, 4, 3, 5, 6, 3, 1, 5, 6, 5, 1, 3, 4, 3, 2, 1, 2, 3, 3, 3, 6, 2, 1, 5, 1, 1, 4, 4, 1, 4, 3, 1, 6, 4, 6, 3, 4, 5, 3, 1, 1, 2, 5, 4, 2, 1, 5, 3, 1, 2, 3, 5, 1, 4, 4, 5, 5, 3, 2, 5, 3, 6, 6, 5, 2, 3, 2, 6, 3, 2, 4, 4, 3, 4, 3, 5, 5, 2, 3, 2, 5, 6, 3, 1, 4, 1, 2, 3, 3, 6, 6, 6, 6, 5, 3, 5, 2, 3, 1, 2, 6, 3, 6, 4, 1, 1, 1, 1, 6, 1, 2, 6, 1, 3, 3, 6, 2, 3, 3, 3, 2, 3, 5, 5, 4, 6, 6, 3, 2, 3, 1, 1, 5, 4, 2, 5, 5, 3, 4, 5, 2, 4, 4, 5, 4, 6, 3, 3, 2, 4, 4, 6, 5, 3, 3, 5, 5, 6, 2, 5, 2, 3, 3, 3, 3, 4, 3, 2, 1, 5, 6, 5, 4, 6, 4, 3, 4, 3, 5, 1, 5, 2, 5, 5, 5, 1, 1, 1, 3, 5, 4, 6, 4, 1, 1, 1, 4, 6, 1, 5, 3, 1, 2, 2, 6, 1, 5, 5, 4, 4, 2, 4, 6, 4, 3, 5, 6, 1, 1, 2, 4, 2, 6, 6, 6, 6, 5, 1, 2, 4, 4, 5, 6, 6, 5, 3, 5, 3, 4, 4, 6, 5, 2, 2, 3, 3, 5, 3, 5, 5, 6, 3, 2, 1, 3, 1, 2, 1, 3, 6, 3, 3, 5, 2, 4, 4, 1, 4, 3, 6, 5, 2, 1, 5, 4, 3, 1, 6, 2, 6, 6, 4, 1, 4, 6, 5, 6, 4, 3, 2, 1, 1, 6, 1, 2, 6, 6, 6, 1, 2, 2, 1, 4, 2, 3, 6, 2, 6, 5, 2, 6, 5, 2, 6, 2, 5, 6, 5, 6, 6, 2, 5, 4, 3, 2, 1, 4, 4, 4, 3, 3, 1, 2, 1, 1, 4, 6, 4, 2, 5, 1, 1, 2, 2, 2, 5, 6, 1, 6, 2, 4, 6, 1, 4, 2, 6, 2, 1, 4, 3, 2, 1, 4, 2, 5, 6, 5, 6, 3, 3, 5, 1, 6, 4, 1, 4, 2, 4, 1, 4, 1, 6, 1, 2, 1, 2, 5, 2, 4, 6, 4, 5, 4, 5, 5, 4, 6, 4, 6, 5, 3, 3, 4, 1, 3, 4, 4, 1, 5, 1, 6, 6, 6, 1, 6, 4, 5, 6, 5, 4, 1, 5, 6, 6, 4, 1, 5, 4, 6, 3, 1, 2, 1, 4, 4, 6, 4, 6, 5, 1, 4, 3, 2, 2, 1, 6, 6, 5, 4, 1, 3, 3, 1, 2, 4, 2, 3, 4, 6, 1, 6, 1, 5, 4, 4, 2, 3, 2, 3, 5, 5, 4, 2, 4, 6, 6, 1, 4, 2, 2, 1, 4, 6, 3, 6, 3, 3, 1, 6, 6, 2, 6, 5, 3, 2, 5, 6, 2, 6, 3, 5, 6, 6, 2, 4, 4, 3, 5, 3, 4, 2, 5, 1, 3, 4, 5, 3, 1, 5, 6, 2, 4, 3, 5, 4, 2, 2, 4, 1, 3, 3, 1, 4, 1, 2, 6, 6, 5, 4, 5, 6, 1, 5, 5, 6, 2, 6, 3, 2, 4, 2, 5, 6, 4, 2, 1, 3, 2, 6, 5, 1, 6, 2, 5, 1, 1, 1, 3, 6, 1, 4, 2, 6, 1, 4, 4, 5, 5, 5, 3, 4, 1, 6, 1, 3, 4, 4, 6, 4, 4, 5, 2, 3, 6, 1, 6, 3, 4, 5, 6, 2, 2, 5, 3, 2, 2, 2, 6, 4, 1, 3, 3, 6, 2, 6, 4, 5, 5, 3, 1, 4, 6, 2, 1, 1, 1, 6, 4, 5, 6, 4, 4, 3, 1, 2, 3, 2, 5, 4, 1, 6, 5, 6, 2, 5, 2, 3, 1, 2, 3, 4, 3, 2, 2, 2, 3, 5, 3, 3, 4, 2, 1, 4, 3, 5, 4, 5, 4, 2, 6, 1, 3, 5, 3, 2, 3, 4, 4, 2, 2, 3, 4, 5, 4, 5, 4, 3, 6, 3, 3, 2, 4, 2, 6, 4, 4, 4, 4, 4, 4, 2, 4, 6, 3, 5, 4, 5, 4, 5, 1, 5, 2, 3, 4, 5, 6, 2, 4, 3, 3, 1, 2, 6, 1, 4, 2, 3, 4, 4, 1, 6, 1, 5, 3, 3, 6, 6, 6, 4, 4, 4, 5, 3, 4, 6, 5, 5, 2, 6, 5, 3, 2, 3, 1, 2, 1, 5, 6, 3, 5, 2, 4, 4, 3, 2, 2, 3, 5, 1, 6, 5, 1, 3, 1, 2, 5, 3, 4, 5, 2, 5, 5, 3, 1, 3, 2, 6, 4, 2, 5, 3, 5, 5, 4, 2, 5, 6, 5, 6, 1, 3, 6, 4, 4, 5, 4, 6, 4, 6, 5, 3, 4, 3, 4, 1, 6, 6, 4, 5, 1, 6, 2, 5, 2, 2, 1, 3, 2, 6, 5, 3, 1, 1, 4, 1, 2, 2, 2, 5, 6, 6, 3, 2, 3, 2, 5, 5, 5, 2, 5, 1, 6, 1, 2, 6, 2, 3, 3, 5, 4, 6, 4, 6, 5, 6, 5, 2, 6, 6, 5, 5, 1, 4, 3, 6, 1, 4, 2, 6, 2, 1, 4, 1, 4, 2, 6, 6, 5, 6, 5, 4, 4, 6, 2, 1, 4, 3, 5, 4, 6, 6, 2, 1, 4, 4, 6, 3, 6, 1, 4, 5, 3, 4, 5, 6, 4, 3, 5, 3, 4, 5, 2, 2, 4, 1, 6, 4, 6, 3, 3, 6, 4, 3, 1, 1, 5, 1, 5, 4, 4, 5, 6, 5, 1, 2, 3, 4, 4, 5, 4, 1, 5, 2, 4, 3, 5, 6, 4, 4, 1, 6, 6, 6, 6, 3, 1, 4, 1, 4, 1, 3, 5, 2, 1, 4, 1, 4, 1, 2, 3, 2, 2, 3, 6, 6, 2, 2, 4, 1, 5, 3, 1, 1, 4, 3, 4, 3, 2, 5, 1, 3, 2, 2, 6, 3, 3, 3, 3, 1, 2, 6, 5, 4, 4, 6, 1, 1, 2, 6, 5, 4, 3, 2, 3, 3, 3, 6, 2, 2, 6, 2, 6, 2, 2, 2, 6, 1, 5, 5, 3, 6, 5, 4, 3, 2, 5, 4, 4, 4, 4, 6, 6, 2, 4, 2, 6, 2, 3, 2, 1, 4, 2, 4, 1, 2, 2, 4, 4, 1, 5, 5, 3, 4, 1, 2, 6, 5, 4, 6, 2, 3, 3, 2, 1, 3, 5, 2, 1, 5, 5, 4, 6, 4, 5, 6, 5, 5, 2, 3, 4, 2, 6, 3, 1, 4, 6, 3, 6, 3, 4, 4, 4, 1, 5, 1, 2, 1, 3, 5, 5, 1, 3, 1, 3, 2, 3, 6, 5, 2, 5, 6, 5, 6, 2, 1, 1, 4, 4, 2, 1, 1, 4, 3, 5, 1, 1, 3, 5, 4, 4, 3, 6, 3, 5, 3, 3, 6, 6, 6, 3, 3, 6, 6, 6, 2, 4, 3, 5, 2, 4, 6, 3, 1, 4, 3, 2, 2, 3, 6, 4, 1, 6, 1, 2, 2, 3, 6, 3, 1, 2, 1, 1, 6, 1, 3, 2, 4, 2, 6, 4, 3, 2, 3, 2, 3, 6, 3, 1, 6, 6, 3, 6, 2, 2, 4, 5, 3, 1, 6, 4, 3, 3, 1, 5, 1, 2, 6, 3, 6, 3, 4, 6, 6, 3, 4, 2, 2, 2, 1, 5, 5, 5, 6, 4, 1, 2, 6, 6, 4, 3, 5, 3, 3, 2, 6, 5, 6, 1, 1, 1, 2, 6, 6, 6, 5, 1, 5, 5, 1, 5, 2, 5, 4, 4, 6, 4, 5, 6, 6, 5, 4, 1, 2, 4, 1, 6, 2, 2, 5, 1, 4, 1, 5, 2, 2, 5, 4, 1, 6, 3, 6, 2, 6, 5, 6, 6, 1, 3, 5, 3, 1, 6, 6, 6, 4, 6, 2, 6, 2, 2, 2, 5, 1, 3, 5, 4, 6, 2, 6, 3, 3, 2, 6, 2, 3, 1, 3, 5, 5, 5, 5, 2, 6, 4, 2, 2, 3, 6, 6, 2, 2, 2, 6, 6, 5, 1, 6, 4, 5, 4, 4, 3, 1, 2, 3, 3, 5, 2, 4, 2, 6, 2, 4, 4, 2, 3, 1, 2, 1, 6, 6, 5, 3, 4, 3, 1, 3, 3, 3, 3, 2, 1, 3, 1, 3, 4, 6, 6, 1, 2, 2, 4, 4, 2, 4, 5, 4, 1, 1, 3, 4, 3, 3, 4, 1, 3, 1, 2, 3, 6, 3, 5, 1, 4, 5, 6, 4, 5, 2, 6, 1, 1, 1, 3, 6, 3, 1, 2, 2, 1, 3, 3, 6, 1, 5, 3, 2, 5, 5, 2, 6, 5, 5, 2, 2, 1, 2, 6, 5, 1, 5, 1, 6, 4, 4, 6, 4, 5, 6, 4, 1, 4, 3, 2, 1, 6, 6, 4, 6, 6, 5, 3, 4, 6, 3, 6, 4, 5, 5, 3, 1, 2, 4, 3, 1, 3, 1, 1, 6, 2, 1, 6, 2, 3, 4, 6, 5, 6, 3, 6, 6, 6, 1, 3, 1, 5, 2, 6, 3, 6, 6, 3, 5, 4, 6, 3, 2, 1, 5, 2, 2, 1, 1, 4, 5, 5, 3, 3, 1, 3, 1, 5, 1, 2, 5, 5, 2, 4, 2, 5, 6, 1, 6, 6, 5, 6, 6, 4, 5, 3, 4, 3, 1, 5, 2, 1, 6, 1, 4, 3, 5, 2, 6, 3, 3, 4, 5, 1, 2, 3, 3, 6, 1, 5, 1, 6, 6, 5, 5, 5, 6, 2, 3, 2, 5, 4, 2, 2, 2, 2, 4, 4, 2, 3, 3, 4, 2, 4, 2, 6, 3, 6, 6, 2, 1, 6, 4, 4, 6, 6, 6, 5, 5, 3, 5, 3, 3, 1, 6, 1, 5, 6, 6, 6, 6, 1, 5, 5, 5, 3, 2, 2, 6, 6, 3, 3, 6, 5, 2, 3, 6, 3, 2, 1, 3, 6, 6, 2, 1, 4, 2, 2, 2, 6, 2, 5, 5, 4, 2, 5, 6, 1, 1, 1, 2, 4, 3, 5, 5, 2, 3, 1, 4, 6, 4, 1, 2, 5, 4, 2, 2, 5, 1, 1, 4, 2, 3, 3, 3, 6, 5, 3, 6, 3, 3, 3, 1, 4, 5, 3, 1, 2, 4, 5, 2, 5, 4, 3, 4, 4, 3, 1, 2, 6, 6, 2, 2, 4, 4, 3, 6, 5, 2, 3, 3, 4, 6, 3, 5, 1, 1, 3, 1, 4, 6, 4, 6, 5, 2, 6, 1, 1, 4, 4, 4, 5, 6, 1, 1, 4, 2, 3, 2, 6, 1, 2, 2, 3, 3, 3, 4, 4, 3, 6, 2, 6, 2, 4, 6, 6, 2, 6, 4, 2, 5, 3, 4, 3, 5, 4, 6, 4, 3, 5, 3, 5, 4, 3, 4, 1, 2, 4, 3, 2, 5, 4, 2, 5, 1, 4, 3, 4, 6, 1, 6, 5, 5, 2, 4, 4, 4, 3, 1, 3, 1, 1, 1, 4, 6, 2, 2, 5, 2, 1, 2, 5, 1, 6, 6, 5, 3, 3, 1, 4, 6, 4, 6, 3, 1, 1, 4, 1, 3, 6, 3, 6, 2, 6, 6, 5, 2, 1, 4, 4, 2, 1, 6, 5, 2, 6, 5, 2, 3, 1, 5, 5, 2, 4, 3, 3, 5, 5, 2, 3, 5, 6, 3, 3, 4, 6, 5, 2, 4, 1, 5, 4, 3, 5, 1, 4, 5, 5, 2, 6, 2, 4, 2, 1, 4, 6, 2, 4, 5, 2, 4, 4, 3, 3, 3, 1, 6, 4, 1, 4, 1, 1, 5, 4, 1, 1, 3, 4, 2, 4, 2, 2, 3, 3, 4, 1, 2, 2, 4, 4, 1, 1, 5, 6, 5, 6, 1, 6, 2, 2, 4, 1, 3, 1, 1, 2, 4, 4, 5, 4, 3, 4, 3, 5, 5, 3, 3, 1, 2, 4, 4, 5, 2, 6, 1, 1, 4, 5, 1, 6, 1, 1, 5, 6, 5, 1, 2, 4, 2, 2, 3, 5, 4, 4, 4, 3, 4, 3, 1, 1, 4, 5, 5, 4, 1, 6, 5, 4, 4, 4, 4, 6, 5, 4, 6, 5, 6, 4, 4, 3, 5, 5, 4, 3, 6, 2, 6, 5, 6, 4, 1, 4, 6, 1, 2, 3, 5, 4, 5, 1, 1, 5, 3, 3, 1, 4, 3, 2, 1, 2, 1, 5, 6, 2, 3, 3, 4, 4, 4, 4, 5, 2, 4, 2, 3, 4, 3, 6, 1, 4, 6, 6, 6, 1, 1, 5, 6, 2, 3, 2, 3, 2, 4, 2, 5, 3, 3, 4, 4, 2, 5, 6, 6, 3, 1, 6, 3, 1, 2, 4, 1, 6, 4, 2, 2, 1, 5, 3, 6, 2, 4, 3, 3, 5, 2, 6, 2, 4, 6, 1, 2, 5, 5, 1, 3, 1, 5, 1, 5, 6, 2, 2, 3, 6, 2, 3, 6, 3, 1, 5, 6, 1, 6, 1, 4, 1, 5, 1, 6, 1, 6, 3, 2, 4, 5, 6, 6, 5, 6, 2, 2, 3, 1, 3, 1, 3, 3, 6, 3, 1, 5, 1, 6, 6, 1, 3, 4, 2, 4, 6, 1, 3, 5, 1, 4, 3, 4, 5, 2, 5, 3, 4, 5, 6, 2, 6, 5, 2, 4, 6, 6, 2, 1, 2, 1, 2, 1, 3, 5, 3, 5, 6, 6, 2, 6, 1, 5, 1, 6, 2, 4, 5, 4, 4, 5, 5, 3, 5, 5, 5, 2, 3, 1, 2, 6, 3, 3, 5, 5, 6, 3, 1, 4, 5, 5, 6, 2, 6, 2, 2, 6, 2, 2, 3, 6, 1, 2, 2, 4, 5, 4, 4, 3, 5, 2, 5, 4, 6, 2, 1, 3, 5, 5, 5, 5, 4, 3, 4, 6, 5, 1, 2, 1, 1, 1, 4, 1, 6, 6, 2, 3, 5, 6, 5, 3, 1, 6, 5, 5, 2, 4, 4, 4, 5, 3, 2, 6, 3, 3, 3, 1, 2, 2, 3, 3, 3, 5, 2, 4, 3, 5, 4, 2, 5, 6, 3, 6, 1, 5, 3, 3, 3, 6, 3, 3, 3, 1, 5, 1, 1, 3, 4, 2, 6, 4, 4, 5, 1, 2, 1, 6, 3, 5, 3, 2, 1, 6, 2, 4, 4, 2, 4, 3, 4, 3, 5, 5, 6, 6, 4, 4, 5, 1, 3, 4, 2, 5, 4, 2, 5, 1, 3, 2, 6, 4, 2, 4, 6, 2, 1, 5, 5, 1, 4, 2, 6, 4, 4, 5, 2, 6, 1, 5, 4, 2, 3, 4, 5, 2, 5, 6, 4, 4, 4, 1, 2, 3, 4, 2, 4, 2, 3, 1, 3, 3, 2, 6, 2, 5, 6, 6, 3, 2, 3, 6, 1, 3, 6, 6, 3, 6, 5, 2, 2, 1, 6, 3, 2, 5, 3, 3, 5, 2, 2, 6, 5, 4, 6, 5, 1, 5, 2, 4, 6, 5, 3, 3, 6, 5, 6, 1, 5, 2, 1, 4, 6, 4, 6, 6, 5, 2, 6, 2, 5, 3, 1, 1, 4, 6, 4, 6, 3, 5, 4, 1, 5, 4, 3, 5, 5, 5, 3, 2, 5, 6, 4, 6, 1, 5, 1, 4, 1, 4, 3, 5, 4, 4, 2, 6, 4, 2, 3, 3, 3, 3, 1, 3, 2, 2, 1, 1, 6, 6, 2, 6, 5, 6, 6, 6, 4, 5, 5, 5, 2, 1, 6, 3, 6, 3, 1, 1, 5, 4, 5, 2, 4, 6, 5, 6, 2, 2, 3, 1, 3, 6, 5, 2, 2, 5, 4, 1, 6, 4, 6, 5, 2, 6, 1, 5, 5, 5, 1, 4, 5, 4, 2, 4, 4, 2, 5, 1, 3, 1, 3, 3, 6, 6, 4, 2, 2, 4, 6, 4, 4, 3, 3, 4, 2, 4, 6, 4, 5, 2, 6, 5, 3, 3, 4, 2, 4, 4, 5, 4, 3, 3, 3, 4, 2, 5, 1, 4, 1, 4, 4, 3, 4, 2, 6, 1, 3, 3, 2, 6, 6, 1, 1, 2, 1, 2, 4, 2, 2, 3, 4, 2, 6, 5, 3, 1, 5, 2, 6, 1, 2, 1, 2, 1, 6, 3, 2, 4, 2, 5, 4, 6, 1, 1, 4, 2, 5, 2, 6, 6, 3, 2, 6, 6, 2, 3, 6, 3, 1, 6, 6, 4, 3, 6, 5, 2, 1, 5, 3, 3, 2, 5, 5, 4, 4, 5, 4, 4, 2, 4, 5, 5, 5, 2, 3, 4, 4, 2, 2, 2, 5, 3, 4, 4, 5, 6, 3, 1, 5, 1, 6, 4, 5, 5, 3, 3, 1, 4, 4, 3, 4, 5, 5, 6, 6, 4, 2, 5, 2, 2, 1, 3, 1, 5, 3, 1, 6, 6, 6, 6, 5, 4, 4, 5, 5, 3, 1, 2, 3, 6, 5, 5, 2, 1, 3, 3, 4, 4, 2, 5, 4, 2, 6, 5, 6, 3, 1, 5, 1, 1, 4, 4, 6, 6, 6, 2, 4, 3, 2, 2, 3, 4, 3, 6, 4, 6, 3, 3, 1, 6, 4, 2, 4, 1, 3, 5, 2, 2, 5, 6, 2, 2, 2, 1, 2, 4, 3, 1, 4, 6, 4, 1, 3, 5, 3, 4, 2, 2, 2, 5, 5, 3, 5, 4, 5, 5, 6, 3, 5, 6, 4, 1, 4, 4, 3, 4, 2, 5, 2, 5, 4, 5, 6, 3, 3, 1, 6, 3, 3, 2, 1, 5, 3, 2, 6, 6, 5, 5, 3, 5, 4, 2, 5, 6, 5, 3, 5, 4, 4, 5, 1, 6, 6, 5, 6, 6, 3, 1, 2, 3, 5, 2, 5, 6, 4, 6, 1, 4, 1, 5, 5, 4, 2, 2, 2, 6, 4, 4, 1, 6, 2, 5, 5, 1, 6, 6, 6, 2, 6, 2, 5, 3, 2, 2, 2, 4, 6, 2, 4, 1, 5, 6, 5, 1, 2, 1, 1, 5, 3, 3, 4, 2, 2, 2, 2, 1, 3, 2, 4, 6, 2, 4, 6, 1, 2, 6, 4, 3, 6, 4, 1, 6, 2, 6, 3, 4, 5, 5, 3, 3, 6, 5, 4, 6, 5, 6, 5, 5, 4, 1, 3, 1, 3, 3, 1, 4, 1, 6, 4, 1, 6, 4, 5, 2, 2, 2, 4, 1, 5, 6, 2, 2, 6, 2, 4, 3, 5, 6, 2, 4, 3, 6, 3, 1, 3, 2, 2, 4, 4, 5, 5, 2, 2, 5, 5, 3, 3, 3, 3, 5, 6, 2, 1, 6, 2, 1, 5, 5, 3, 2, 2, 3, 3, 6, 1, 4, 5, 3, 4, 3, 1, 4, 2, 1, 3, 5, 5, 5, 1, 5, 3, 6, 4, 6, 6, 1, 6, 3, 4, 3, 3, 3, 5, 1, 1, 1, 3, 5, 3, 5, 4, 2, 5, 4, 2, 3, 2, 4, 6, 4, 1, 2, 5, 4, 6, 6, 2, 4, 3, 4, 3, 2, 4, 3, 4, 3, 3, 3, 3, 6, 4, 5, 6, 2, 1, 5, 5, 4, 6, 4, 2, 3, 4, 2, 3, 5, 5, 3, 5, 6, 1, 1, 5, 6, 2, 1, 5, 1, 2, 6, 5, 4, 1, 6, 6, 6, 4, 4, 1, 1, 5, 6, 1, 5, 5, 2, 3, 2, 6, 3, 3, 3, 2, 2, 5, 2, 4, 4, 2, 2, 2, 3, 2, 5, 2, 5, 6, 5, 5, 6, 5, 3, 6, 6, 2, 3, 2, 1, 1, 3, 5, 6, 6, 1, 3, 2, 4, 1, 4, 3, 3, 5, 2, 3, 3, 5, 5, 1, 3, 5, 4, 3, 2, 3, 6, 1, 2, 3, 1, 2, 4, 1, 5, 5, 1, 2, 6, 2, 5, 1, 2, 2, 1, 5, 4, 3, 3, 2, 4, 1, 1, 2, 3, 3, 5, 3, 1, 1, 6, 3, 4, 1, 6, 2, 3, 4, 3, 3, 6, 1, 4, 2, 4, 4, 5, 1, 6, 6, 2, 3, 5, 4, 4, 5, 1, 3, 1, 3, 1, 6, 6, 3, 2, 2, 1, 4, 4, 5, 6, 5, 6, 2, 6, 2, 4, 3, 2, 6, 4, 2, 3, 6, 4, 3, 3, 6, 2, 3, 1, 2, 3, 2, 5, 1, 6, 2, 1, 5, 1, 6, 4, 4, 2, 4, 6, 3, 2, 3, 6, 2, 2, 5, 5, 2, 6, 2, 2, 1, 5, 6, 2, 4, 1, 4, 3, 5, 2, 5, 2, 3, 4, 6, 3, 4, 5, 4, 1, 3, 6, 4, 5, 5, 5, 2, 1, 1, 3, 5, 2, 4, 1, 2, 3, 1, 2, 2, 6, 3, 3, 2, 3, 3, 2, 1, 3, 3, 5, 4, 3, 5, 2, 4, 5, 2, 6, 5, 6, 5, 2, 5, 6, 6, 6, 6, 1, 3, 6, 5, 3, 2, 6, 2, 6, 5, 4, 5, 4, 4, 6, 1, 1, 3, 5, 3, 6, 6, 4, 3, 1, 6, 5, 5, 5, 1, 6, 3, 6, 4, 1, 5, 3, 2, 5, 2, 1, 5, 6, 3, 5, 3, 6, 5, 3, 4, 1, 6, 4, 5, 1, 1, 3, 6, 1, 5, 1, 6, 4, 1, 1, 4, 3, 4, 6, 4, 4, 2, 1, 2, 1, 6, 5, 1, 3, 6, 6, 4, 3, 3, 1, 6, 4, 3, 1, 3, 6, 4, 5, 2, 2, 3, 1, 4, 2, 3, 1, 6, 4, 5, 6, 2, 3, 4, 1, 5, 6, 3, 4, 1, 4, 1, 3, 3, 4, 4, 5, 6, 1, 1, 5, 6, 4, 6, 4, 6, 1, 5, 5, 5, 3, 3, 4, 4, 1, 4, 6, 5, 3, 5, 3, 1, 6, 5, 3, 6, 2, 2, 1, 6, 2, 1, 5, 4, 2, 1, 6, 6, 6, 2, 1, 1, 4, 6, 5, 6, 5, 3, 2, 4, 6, 3, 6, 5, 2, 5, 3, 3, 3, 6, 6, 5, 4, 3, 5, 3, 3, 4, 1, 3, 5, 1, 4, 4, 6, 5, 6, 3, 5, 2, 3, 4, 6, 4, 2, 3, 2, 3, 2, 6, 4, 6, 3, 1, 1, 2, 5, 2, 3, 1, 5, 4, 5, 1, 4, 6, 5, 3, 6, 5, 6, 2, 6, 4, 2, 1, 6, 4, 3, 3, 5, 5, 1, 3, 3, 6, 1, 1, 2, 6, 1, 5, 6, 3, 5, 4, 6, 5, 3, 1, 4, 6, 1, 3, 5, 4, 3, 1, 3, 2, 5, 6, 3, 4, 4, 2, 5, 3, 3, 6, 2, 3, 6, 3, 1, 5, 3, 3, 1, 3, 5, 3, 5, 1, 1, 1, 4, 2, 5, 1, 6, 4, 1, 2, 1, 5, 5, 2, 2, 4, 6, 3, 3, 5, 3, 4, 6, 4, 3, 3, 4, 2, 4, 6, 5, 5, 5, 3, 2, 2, 5, 4, 3, 4, 4, 6, 3, 3, 4, 6, 6, 2, 6, 5, 4, 5, 5, 1, 1, 6, 5, 4, 6, 1, 2, 2, 4, 6, 2, 6, 3, 5, 2, 3, 6, 4, 6, 4, 6, 5, 5, 6, 3, 1, 6, 6, 5, 3, 4, 4, 6, 4, 5, 2, 5, 3, 2, 2, 2, 5, 1, 6, 2, 5, 4, 4, 1, 4, 1, 6, 2, 6, 5, 1, 3, 1, 2, 1, 2, 4, 6, 3, 4, 6, 4, 1, 2, 3, 5, 6, 3, 2, 2, 3, 3, 1, 2, 5, 2, 4, 5, 1, 3, 3, 6, 6, 1, 3, 5, 4, 3, 5, 3, 2, 5, 2, 6, 5, 2, 4, 5, 1, 5, 1, 2, 1, 6, 4, 1, 4, 1, 3, 4, 3, 5, 6, 6, 2, 5, 2, 4, 5, 1, 5, 3, 1, 1, 3, 6, 4, 2, 1, 6, 6, 2, 3, 3, 1, 2, 3, 6, 5, 4, 1, 6, 5, 2, 6, 1, 5, 5, 2, 5, 1, 4, 6, 3, 5, 5, 1, 3, 6, 1, 4, 2, 1, 5, 1, 2, 1, 6, 3, 3, 6, 1, 6, 4, 2, 4, 6, 2, 5, 1, 2, 6, 2, 6, 1, 5, 3, 5, 2, 4, 5, 2, 3, 6, 6, 3, 1, 5, 3, 6, 4, 1, 4, 6, 2, 3, 3, 6, 5, 1, 1, 2, 6, 4, 1, 4, 4, 2, 1, 6, 2, 4, 2, 3, 6, 5, 3, 1, 2, 6, 4, 2, 1, 4, 2, 6, 2, 3, 5, 1, 3, 4, 2, 6, 4, 3, 1, 4, 5, 1, 6, 1, 6, 1, 3, 3, 3, 2, 4, 6, 4, 5, 4, 1, 3, 5, 1, 5, 3, 1, 2, 1, 6, 6, 6, 5, 4, 1, 2, 6, 5, 4, 2, 4, 5, 3, 5, 4, 3, 6, 2, 5, 5, 6, 1, 5, 4, 5, 1, 2, 1, 6, 2, 4, 5, 3, 5, 2, 2, 2, 2, 5, 3, 6, 4, 2, 5, 2, 4, 3, 1, 1, 2, 4, 1, 2, 6, 2, 1, 5, 2, 2, 3, 4, 5, 6, 6, 1, 2, 3, 6, 4, 4, 4, 1, 2, 4, 1, 2, 1, 1, 6, 3, 6, 2, 2, 2, 1, 4, 1, 4, 5, 2, 2, 4, 1, 6, 1, 1, 6, 6, 2, 2, 4, 3, 2, 3, 4, 6, 3, 3, 5, 5, 2, 5, 4, 4, 2, 2, 4, 2, 4, 3, 3, 2, 1, 5, 3, 5, 1, 1, 5, 4, 1, 3, 6, 5, 5, 6, 4, 6, 4, 3, 4, 5, 5, 6, 6, 3, 5, 4, 5, 1, 6, 3, 3, 6, 4, 4, 6, 3, 6, 5, 6, 5, 3, 6, 1, 1, 4, 3, 6, 2, 2, 4, 1, 2, 2, 6, 2, 6, 6, 4, 2, 1, 1, 3, 3, 4, 1, 6, 3, 3, 6, 2, 3, 1, 3, 1, 6, 2, 4, 6, 2, 6, 6, 5, 6, 2, 3, 1, 3, 3, 5, 4, 5, 5, 3, 1, 4, 1, 3, 5, 5, 3, 4, 1, 5, 5, 4, 6, 5, 5, 4, 5, 2, 6, 3, 4, 5, 2, 2, 1, 2, 3, 6, 5, 4, 5, 3, 1, 4, 1, 2, 5, 4, 6, 2, 6, 6, 3, 1, 4, 4, 4, 1, 1, 5, 4, 1, 2, 5, 6, 1, 5, 5, 3, 1, 2, 5, 6, 4, 6, 6, 6, 2, 3, 2, 6, 3, 5, 4, 4, 1, 4, 2, 5, 4, 1, 2, 4, 1, 3, 1, 5, 4, 3, 1, 4, 3, 4, 2, 1, 6, 2, 5, 6, 4, 2, 6, 2, 5, 2, 4, 3, 5, 1, 3, 2, 4, 2, 4, 4, 4, 6, 1, 5, 2, 1, 1, 5, 1, 3, 3, 6, 2, 5, 5, 1, 3, 5, 2, 4, 3, 5, 4, 1, 1, 2, 6, 4, 4, 1, 1, 2, 3, 2, 3, 1, 2, 5, 3, 3, 3, 1, 5, 3, 1, 2, 3, 1, 5, 4, 3]\n"
     ]
    }
   ],
   "source": [
    "print(random_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "1b0e7d44",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 16874 0.16874\n",
      "2 16544 0.16544\n",
      "3 16768 0.16768\n",
      "4 16711 0.16711\n",
      "5 16626 0.16626\n",
      "6 16477 0.16477\n"
     ]
    }
   ],
   "source": [
    "for i in range(1,7):\n",
    "    print(i,random_list.count(i),random_list.count(i)/100000)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "56f1e503",
   "metadata": {},
   "source": [
    "### 1.3 列表元素的排列sort()和reverse()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "0e5c9d7d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['张三', '李四', '小明', 'Jalex', '李四']"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list = [\"张三\",\"李四\",\"小明\",\"Jalex\",\"李四\"]\n",
    "name_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "7db51943",
   "metadata": {},
   "outputs": [],
   "source": [
    "name_list.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "98cb2f32",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Jalex', '小明', '张三', '李四', '李四']"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "9d1233a5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[18, 19, 21, 22, 30, 17]"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "age_list = [18,19,21,22,30,17]\n",
    "age_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "79a88214",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[17, 18, 19, 21, 22, 30]"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "age_list.sort()\n",
    "age_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "1cf5c0bd",
   "metadata": {},
   "outputs": [],
   "source": [
    "age_list.reverse()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "aeaa3ffe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[30, 22, 21, 19, 18, 17]"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "age_list"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd0c2588",
   "metadata": {},
   "source": [
    "### 1.4 copy()\n",
    "\n",
    "\n",
    "> 1. =\n",
    "> 2. copy()\n",
    "> 3. deep copy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "d428c785",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2786459333184\n",
      "2786473294416\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "['张三', '李四', '小明', 'Jalex', '李四']"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list01 = [\"张三\",\"李四\",\"小明\",\"Jalex\",\"李四\"]\n",
    "print(id(name_list01))\n",
    "print(id(name_list01[0]))\n",
    "name_list01"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "814be0ee",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2786459333184\n",
      "2786473294416\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "['张三', '李四', '小明', 'Jalex', '李四']"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list02 = name_list01\n",
    "print(id(name_list02))\n",
    "print(id(name_list02[0]))\n",
    "name_list02"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "a6bc4cd9",
   "metadata": {},
   "outputs": [],
   "source": [
    "name_list01.append('Marry')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "ac23aab9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['张三', '李四', '小明', 'Jalex', '李四', 'Marry']"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list01"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "32e4025d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['张三', '李四', '小明', 'Jalex', '李四', 'Marry']"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list02"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4ad7fc59",
   "metadata": {},
   "source": [
    "* 如上原因：我们不得不找一个方法来实现“真正的”复制"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "e26b9eb3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2786467213952\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "['张三', '李四', '小明', 'Jalex', '李四']"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list01 = [\"张三\",\"李四\",\"小明\",\"Jalex\",\"李四\"]\n",
    "print(id(name_list01))\n",
    "name_list01"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "5631bece",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2786469524160\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "['张三', '李四', '小明', 'Jalex', '李四']"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list02 = name_list01.copy()\n",
    "print(id(name_list02))\n",
    "name_list02"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "1bfdbbe7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'李四'"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list01.pop()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "8a24d96a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['张三', '李四', '小明', 'Jalex']"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list01"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "65621677",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['张三', '李四', '小明', 'Jalex', '李四']"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list02"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e614a62c",
   "metadata": {},
   "source": [
    "# 2. 课后实践\n",
    "\n",
    "## 2.1 实践：购物车项目"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1c5beb21",
   "metadata": {},
   "source": [
    "购物车程序项目：\n",
    "\n",
    "> 1. 运行程序后，让用户输入(input)支付宝余额，然后打印我们的商品列表给用户。\n",
    ">>1. 列表数据（第一种：自己创建的；第二种：空列表，后面补充数据）\n",
    "> 2. 让用户输入商品编号进行商品的购买。(while ture)index\n",
    ">> 1. **<font style=\"color:red\">用户输入 input 的结果必然是字符串 str</font>**\n",
    "> 3. 用户选择商品后，检查用户的余额是否够，若够则直接扣款，不够则提醒用户。（if条件判断）\n",
    "> 4. 用户可以随时退出购买，推出时打印用户已购买的商品和支付宝余额。(brick)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ac94a477",
   "metadata": {},
   "source": [
    "## 2.2 实践：课本第二章列表的项目"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "ec4472fc",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入余额:16\n",
      "------小烫商铺（注：输入 quit 退出购买）------\n",
      "商品编号：0  ，商品名称：柠檬水，价格为：4元\n",
      "商品编号：1  ，商品名称：草莓摇摇奶昔，价格为：6元\n",
      "商品编号：2  ，商品名称：蜜桃四季春，价格为：7元\n",
      "商品编号：3  ，商品名称：港式杨枝甘露，价格为：10元\n",
      "商品编号：4  ，商品名称：雪顶咖啡，价格为：7元\n",
      "用户选择的商品编号：1\n",
      "您的余额为：10元\n",
      "------小烫商铺（注：输入 quit 退出购买）------\n",
      "商品编号：0  ，商品名称：柠檬水，价格为：4元\n",
      "商品编号：1  ，商品名称：草莓摇摇奶昔，价格为：6元\n",
      "商品编号：2  ，商品名称：蜜桃四季春，价格为：7元\n",
      "商品编号：3  ，商品名称：港式杨枝甘露，价格为：10元\n",
      "商品编号：4  ，商品名称：雪顶咖啡，价格为：7元\n",
      "用户选择的商品编号：2\n",
      "您的余额为：3元\n",
      "------小烫商铺（注：输入 quit 退出购买）------\n",
      "商品编号：0  ，商品名称：柠檬水，价格为：4元\n",
      "商品编号：1  ，商品名称：草莓摇摇奶昔，价格为：6元\n",
      "商品编号：2  ，商品名称：蜜桃四季春，价格为：7元\n",
      "商品编号：3  ，商品名称：港式杨枝甘露，价格为：10元\n",
      "商品编号：4  ，商品名称：雪顶咖啡，价格为：7元\n",
      "用户选择的商品编号：3\n",
      "就3元，还想买港式杨枝甘露 ！\n",
      "------小烫商铺（注：输入 quit 退出购买）------\n",
      "商品编号：0  ，商品名称：柠檬水，价格为：4元\n",
      "商品编号：1  ，商品名称：草莓摇摇奶昔，价格为：6元\n",
      "商品编号：2  ，商品名称：蜜桃四季春，价格为：7元\n",
      "商品编号：3  ，商品名称：港式杨枝甘露，价格为：10元\n",
      "商品编号：4  ，商品名称：雪顶咖啡，价格为：7元\n",
      "用户选择的商品编号：quit\n",
      "感谢光顾小店，欢迎下次光临~拜拜~\n",
      "购物车： [('草莓摇摇奶昔', 6), ('蜜桃四季春', 7)]\n"
     ]
    }
   ],
   "source": [
    "# 1.用户输入\n",
    "alipay = int(input(\"请输入余额:\"))\n",
    "商品列表 = [\n",
    "    (\"柠檬水\",4),\n",
    "    (\"草莓摇摇奶昔\",6),\n",
    "    (\"蜜桃四季春\",7),\n",
    "    ( \"港式杨枝甘露\",10),\n",
    "    (\"雪顶咖啡\",7)\n",
    "    \n",
    "]\n",
    "shopping_car = []\n",
    "# print(商品列表)\n",
    "\n",
    "# 3 循环执行\n",
    "while True:\n",
    "    print(\"------小烫商铺（注：输入 quit 退出购买）------\")\n",
    "    for i in 商品列表:\n",
    "        print(\"商品编号：%s  ，商品名称：%s，价格为：%s元\"%(商品列表.index(i),i[0],i[1]))\n",
    "    # print(\"%s  ，商品名称：%s，价格为：%s元\"%(商品列表.index([\"柠檬水\",4])，[\"柠檬水\",4][0],[\"柠檬水\",4][1]))\n",
    "    #2. 用户选商品\n",
    "    用户选择 = input(\"用户选择的商品编号：\")\n",
    "    #1.如果输入 商品编号\n",
    "    if 用户选择.isdigit():\n",
    "        用户选择 = int(用户选择)\n",
    "        # 增加进购物车，扣钱？\n",
    "        if alipay > 商品列表[用户选择][1]:\n",
    "        # 1. 钱够！扣钱，加入购物车,扣完还剩多少钱\n",
    "            alipay = alipay -  商品列表[用户选择][1]\n",
    "            shopping_car.append(商品列表[用户选择])\n",
    "            print(\"您的余额为：%s元\"%(alipay))  \n",
    "        else:\n",
    "            print(\"就%s元，还想买%s ！\"%(alipay,商品列表[用户选择][0]))\n",
    "    # 2. \"quit\"则退出\n",
    "    elif 用户选择 == \"quit\":\n",
    "        print(\"感谢光顾小店，欢迎下次光临~拜拜~\")\n",
    "        break\n",
    "    # 3. 请输入正确的商品编号或者退出\n",
    "    else:\n",
    "        print(\"请输入正确的编号 或 输入'quit'退出小店~\")\n",
    "print(\"购物车：\",shopping_car)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "835fb625",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 循环列表：可以遍历列表中的每一个元素"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "42e2e013",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6f953529",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
